package com.cch.httpserver.ex01;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * Description:
 * Author: Hank
 * Date: 2018/8/5 22:37
 */

public class HttpServer {
    public static final String WEB_ROOT=System.getProperty("user.dir")+ File.separator+"webroot";

    private  static final String SHUTDOWN_COMMAND="/SHUTDOWN";

    private boolean shutdown = false;

    public static void main(String[] args) {
        HttpServer server = new HttpServer();
        server.await();
    }
    public void await(){

        ServerSocket serverSocket = null;
        int port =8083;
        System.out.println("HttpServer1 start at port "+port);
        try {
            serverSocket = new ServerSocket(port,1, InetAddress.getByName("127.0.0.1"));
        } catch (IOException e) {
            e.printStackTrace();
        }
        while (!shutdown){
            Socket socket = null;
            InputStream input = null;
            OutputStream output = null;
            try {
                socket = serverSocket.accept();
                System.out.println("------------------------------------------------------");
                input = socket.getInputStream();
                output = socket.getOutputStream();
                Request request = new Request(input);
                request.parse();

                Response response = new Response(output);
                response.setRequest(request);
                response.sendStaticResource();
                socket.close();
                if(request.getUri()!=null) {
                    shutdown = request.getUri().equals(SHUTDOWN_COMMAND);
                }
            } catch (Exception e) {
                e.printStackTrace();
                continue;
            }
        }









    }
}
